【VisualStudio】InstallShield Limited Editionを用いたインストーラの作成
Excelアドオン等をPCにインストールするための道のり
最近なぜかExcelアドオンにハマっているわけですが、Visual Studioでアドオンを作っても、部内の人に配らないと部内の人はアドオンを使えません。簡単に配布する方法は無いようなので、インストーラを作らないといけません。
がちのExcelアドオンインストーラを作る前に、まずはVisual Studio 2012でどうやってインストーラを作成するのか、簡単なWPFアプリケーションのインストーラを作って調べてみました。
Visual Studio 2012からのインストーラ
Visual Studio 2012からは従来あったセットアッププロジェクトが無くなり、InstallShield Limited Editionを用いたインストーラの作成を行う必要があります。
Web上のVisual Studioによるインストーラ開発関連の情報がほとんどセットアッププロジェクトに関するもののため、注意が必要です。
開発環境
- Windows 8
- Visual Studio 2012(C#)
サンプルWPFアプリケーションの作成
インストーラでインストールするための簡単なアプリケーションを作成しておきます。今回は下記のようなWPFアプリケーションにします。
このアプリケーションのプロジェクト作成からVisual Studio 2012での作業を始めます。
まず、WPFアプリケーションのプロジェクトを作成します。プロジェクト名は「InstallShieldTest」とします。次に、画面の真ん中にWelcomeと書いてあるButtonを配置します。特に処理は記述しなくて良いです。
InstallShield Limited Editionの有効化
次にInstallShield Limited Editionを有効化します。InstallShield Limited Editionをインストールするわけです。
ソリューションを右クリックし、追加>新しいプロジェクトを選択します。その他のプロジェクトの種類>セットアップと配置>InstallShield Limited Edition の有効化>OKボタンとクリックしていきます。
すると、下記画面がブラウザで表示されます。
InstallShield Limited Edition for Visual Studioを別途入手する必要が有るようなので、ページ内の手順2の「ダウンロードWebサイトにアクセスします」をクリックして、ダウンロードサイトにアクセスします。
下記画面が表示され、フォームを入力が求められるので入力し、「Download Now」ボタンをクリックします。
今回は「Download InstallShield Limited Edition for Microsoft Visual Studio 2010 and 2012」の方のDownloadボタンをクリックします。Visual Studio 2013 Preview用のベータ版もある模様です(サイトを訪れるタイミングによってVisual Studio 2013用の正式版が出ているかもしれません)
InstallShield2012SPRLimitedEdition.exeがダウンロードされるので、インストールします。
この段階で「Activate InstallShield Limited Edition for Visual Studio」という件名のメールが届いていると思います。シリアルナンバーが記入されているので確認して下さい。
ここで念の為Visual Studio 2012を再起動しておきます。さらに、念の為サンプルプロジェクトをエクスプローラーで開き古いSetup1、Setup2などのフォルダを削除します(そもそも空ですので削除してしまって下さい)
これでInstallShield Limited Editionを用いたインストーラ作成の準備が出来ました。
※これまでの手順で実際にインストールされたのは本記事執筆時点では「InstallShield 2012 Spring Limited Edition」になります。
InstallShield Limited Edition Projectの追加
準備ができたので、改めて先ほどのサンプルプロジェクトを開きます。ソリューションを右クリックし、追加>新しいプロジェクトを選択します。その他のプロジェクトの種類>セットアップと配置を開くと新しいプロジェクトテンプレートが追加されています。
※「セットアップと配置」の下に怪しい「1041」というフォルダがあり、その下にもInstallShieldが見えるが無視します。(InstallShieldの非制限版のダウンロードページに飛ばされるリンクが有るだけです)
ここで、「InstallShield Limited Edition Project」を選択し、プロジェクト名をSetup1にし、OKボタンをクリックします。
トライアルライセンスのアクティベーション
この段階でInstallShield Limited Editionを使うのは初めてです。そのため、ここでInstallShield Limited Editionのアクティベーション画面が表示されます。
上記のように、トライアルライセンスをActivateするか、評価を続けるかと聞かれるので、「Activate or Register for free copy of InstallShield」を選択し、「Next」ボタンをクリックします。
すると、下記のようにシリアルナンバー入力画面が表示されるので、メールで送られてきていたシリアルナンバーを入力し、[Activate]ボタンをクリックします。
しばらくすると「Activation Complete」画面が表示されます。同時に、Setup1プロジェクトが生成されます。
ウィザードを用いたインストーラの作成
InstallShield Limited Edition Projectが開くと、下記のようなウィザードライクな画面が表示されます。
基本的にはこのウィザード上で必要な項目を設定し、微調整を行う場合は直接インストーラ用の設定ファイルを修正することになります。
ウィザードの画面中央の説明によると
- 「画面右下の矢印ボタンをクリックしていって設定を入力してね」
- 「戻るボタンをクリックすると前の画面に戻るよ」
- 「ホームボタンをクリックするとこの画面に戻ってくるよ」
というような事を行っているので、次へボタンをクリックしていって設定を入力してみましょう。
インストーラーの作成:アプリケーション情報(Application Information)
まず、アプリケーション情報を入力していきます。
会社名、アプリケーション名、バージョン、Webサイトのアドレスを入力します。ここでは、さらにアプリケーションのアイコンを変更することができるようです。
ここでは会社名はclassmethodとしています(アプリケーションのインストールフォルダ名になるので注意!)
バージョンと会社のWebサイトへのURLも変更しておきます。
インストーラーの作成:インストール要件(Installation Requirements)
次に、インストール要件を指定します。ここではWindows 7、Windows 8必須としてみます。
インストーラーの作成:インストールアーキテクチャ(Installation Architecture)
次に、インストールアーキテクチャを指定します。ユーザーにどのオブジェクトをインストールするか指定させる機能のようなのですが、InstallShield Limited Editionでは変更できないので、そのまま次に進みます。
インストーラーの作成:アプリケーションファイル(Application Files)
次に、インストーラにアプリケーションのファイルを追加します。「Add Project Outputs」ボタンをクリックして何をインストールするか指定します。
今回はアプリケーション本体しか作成していないので、「プライマリ出力」をチェックします。その他、ファイルやフォルダをインストールするファイルとして指定することも可能です。
インストーラーの作成:ショートカット(Application Shortcuts)
次に、ショートカットの設定を行います。
メインのプログラムへのショートカットをデスクトップとスタートメニューに作成するようにしてみます。「New」ボタンをクリックして、何に対するショートカットかを指定していきます。
表示されたダイアログで、[ProgramFilesFolder]>[Classmethod]>[InstallShieldTest]>InstallShieldedTestプライマリ出力、と選択し、「Open」ボタンをクリックします。
すると下記のような画面になるので、「Create shortcut in Start Menu」と「Create shortcut on Desktop」にチェックを入れます。ここではショートカット用のアイコンを指定することもできるようです。
ショートカットアイコンがありませんエラーを回避する
このあとここで解説する「ショートカットアイコンがありませんエラーを回避する方法」を取っておかないと、プロジェクトをビルドした際に、下記エラーが表示されます。
エラー 3 -3204: Cannot extract icon with index 0 from file D:\xxxxxxxx\InstallShieldTest\InstallShieldTest\obj\Debug\InstallShieldTest.exe.
ここで、WPFサンプルアプリケーションのプロジェクトに戻って、プロジェクトの設定を修正しておきます。
プロジェクト設定のアプリケーションのページのリソースの部分でアイコンファイルを明示的に指定します。
(ここで使っているアイコンファイルは「@icon変換」というアプリケーションを使いました)
ここで準備が完了かと思ったのですが、このままだと何故かアプリケーションがBuiltという名前でインストールされてしまいます。ここでSetupプロジェクトの丸3の部分の「Shortcuts/Folders」で詳細な設定を行っておきます。
「Shortcuts/Folders」を開くとエクスプローラのような画面が開くので、ここで下記の部分の「Built」となっている部分をアプリケーション名の「InstallShieldTest」と変更しておきます。これはショートカット名なのでコントロールパネルの「プログラムと機能」で表示されるアプリケーション名とは異なりますが、合わせておいた方が良いでしょう。
インストーラーの作成:レジストリ(Application Registry)
次に、レジストリの設定を行います。必要に応じてレジストリを作成できるようです。今回はそのまま何もせず、次に進みます。
インストーラーの作成:インタビュー(Installation Interview)
最後にユーザーから情報を収集するインタビューの設定を行います。ライセンスアグリーメントを読ませるか、会社と名前を入力させるか等を指定します。
会社と名前の入力は「No」にしておきます。
インストーラーの作成:インストーラの日本語化
ウィザードを用いたインストーラの設定は上記で終わったのですが、インストーラの日本語化を別途行っておきたいと思います。
Setup1プロジェクトの手順1「Organize Your Setup」の「General Information」を開きます。
設定の詳細画面が出るので、Setup Languageを「Japanese: 日本語」とします。
インストーラの作成
インストーラの設定が完了したので、ソリューションをビルドを行うとインストーラが完成します。ソリューションをビルドしましょう。
ビルドに成功すると、インストーラは下記のようなディレクトリに作成されています。
[ソリューションフォルダ]\Setup1\Setup1\Express\DVD-5\DiskImages\DISK1
インストーラの実行
それでは、setup.exeをクリックして実行してみましょう。見慣れたインストール画面が登場しました!
いつものごとく、「次へ」ボタンをポチポチクリックしてアプリケーションをダイアログに従ってインストールします。
インストールが完了すると、スタートメニューとデスクトップにショートカットが作成されています。スタートメニューは下記のような感じになります。
アプリケーションを起動すると、下記のようにサンプルアプリケーションが表示されます。
サンプルアプリケーションのアンインストール
テストが終わったらアプリケーションをアンインストールしておきましょう。コントロールパネルの「プログラムと機能」を開きます。
アプリケーションのアイコンを指定したのに、上記ではでデフォルトのアイコンが表示されます。どこかでアイコンを別途指定しておかないとダメなようです。
最後に
長くなりましたが、Visual Studio 2012でインストーラを作成してみました。世の中はWebアプリケーションばかりになってきていますが、たまにはWindows PC向けのデスクトップアプリケーションを作成し、インストーラ経由で配布してみてはいかがでしょうか。
(Macのデスクトップアプリケーションも作成してみたいな。。。)